﻿/*
 * Jsofteditor - The text editor for Internet - http://www.jsofteditor.net
 * Copyright (C) 2003-2009 Frederico Caldeira Knabben
 *
 * == BEGIN LICENSE ==
 *
 * Licensed under the terms of any of the following licenses at your
 * choice:
 *
 *  - GNU General Public License Version 2 or later (the "GPL")
 *    http://www.gnu.org/licenses/gpl.html
 *
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 *    http://www.gnu.org/licenses/lgpl.html
 *
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
 *    http://www.mozilla.org/MPL/MPL-1.1.html
 *
 * == END LICENSE ==
 *
 * Toolbar items definitions.
 */

var JsoftToolbarItems = new Object() ;
JsoftToolbarItems.LoadedItems = new Object() ;

JsoftToolbarItems.RegisterItem = function( itemName, item )
{
	this.LoadedItems[ itemName ] = item ;
}

JsoftToolbarItems.GetItem = function( itemName )
{
	var oItem = JsoftToolbarItems.LoadedItems[ itemName ] ;

	if ( oItem )
		return oItem ;

	switch ( itemName )
	{
		case 'Source'			: oItem = new JsoftToolbarButton( 'Source'	, JsoftLang.Source, null, Jsoft_TOOLBARITEM_ICONTEXT, true, true, 1 ) ; break ;
		case 'DocProps'			: oItem = new JsoftToolbarButton( 'DocProps'	, JsoftLang.DocProps, null, null, null, null, 2 ) ; break ;
		case 'Save'				: oItem = new JsoftToolbarButton( 'Save'		, JsoftLang.Save, null, null, true, null, 3 ) ; break ;
		case 'NewPage'			: oItem = new JsoftToolbarButton( 'NewPage'	, JsoftLang.NewPage, null, null, true, null, 4  ) ; break ;
		case 'Preview'			: oItem = new JsoftToolbarButton( 'Preview'	, JsoftLang.Preview, null, null, true, null, 5  ) ; break ;
		case 'Templates'		: oItem = new JsoftToolbarButton( 'Templates'	, JsoftLang.Templates, null, null, null, null, 6 ) ; break ;
		case 'About'			: oItem = new JsoftToolbarButton( 'About'		, JsoftLang.About, null, null, true, null, 47  ) ; break ;

		case 'Cut'				: oItem = new JsoftToolbarButton( 'Cut'		, JsoftLang.Cut, null, null, false, true, 7 ) ; break ;
		case 'Copy'				: oItem = new JsoftToolbarButton( 'Copy'		, JsoftLang.Copy, null, null, false, true, 8 ) ; break ;
		case 'Paste'			: oItem = new JsoftToolbarButton( 'Paste'		, JsoftLang.Paste, null, null, false, true, 9 ) ; break ;
		case 'PasteText'		: oItem = new JsoftToolbarButton( 'PasteText'	, JsoftLang.PasteText, null, null, false, true, 10 ) ; break ;
		case 'PasteWord'		: oItem = new JsoftToolbarButton( 'PasteWord'	, JsoftLang.PasteWord, null, null, false, true, 11 ) ; break ;
		case 'Print'			: oItem = new JsoftToolbarButton( 'Print'		, JsoftLang.Print, null, null, false, true, 12 ) ; break ;
		case 'SpellCheck'		: oItem = new JsoftToolbarButton( 'SpellCheck', JsoftLang.SpellCheck, null, null, null, null, 13 ) ; break ;
		case 'Undo'				: oItem = new JsoftToolbarButton( 'Undo'		, JsoftLang.Undo, null, null, false, true, 14 ) ; break ;
		case 'Redo'				: oItem = new JsoftToolbarButton( 'Redo'		, JsoftLang.Redo, null, null, false, true, 15 ) ; break ;
		case 'SelectAll'		: oItem = new JsoftToolbarButton( 'SelectAll'	, JsoftLang.SelectAll, null, null, true, null, 18 ) ; break ;
		case 'RemoveFormat'		: oItem = new JsoftToolbarButton( 'RemoveFormat', JsoftLang.RemoveFormat, null, null, false, true, 19 ) ; break ;
		case 'FitWindow'		: oItem = new JsoftToolbarButton( 'FitWindow'	, JsoftLang.FitWindow, null, null, true, true, 66 ) ; break ;

		case 'Bold'				: oItem = new JsoftToolbarButton( 'Bold'		, JsoftLang.Bold, null, null, false, true, 20 ) ; break ;
		case 'Italic'			: oItem = new JsoftToolbarButton( 'Italic'	, JsoftLang.Italic, null, null, false, true, 21 ) ; break ;
		case 'Underline'		: oItem = new JsoftToolbarButton( 'Underline'	, JsoftLang.Underline, null, null, false, true, 22 ) ; break ;
		case 'StrikeThrough'	: oItem = new JsoftToolbarButton( 'StrikeThrough'	, JsoftLang.StrikeThrough, null, null, false, true, 23 ) ; break ;
		case 'Subscript'		: oItem = new JsoftToolbarButton( 'Subscript'		, JsoftLang.Subscript, null, null, false, true, 24 ) ; break ;
		case 'Superscript'		: oItem = new JsoftToolbarButton( 'Superscript'	, JsoftLang.Superscript, null, null, false, true, 25 ) ; break ;

		case 'OrderedList'		: oItem = new JsoftToolbarButton( 'InsertOrderedList'		, JsoftLang.NumberedListLbl, JsoftLang.NumberedList, null, false, true, 26 ) ; break ;
		case 'UnorderedList'	: oItem = new JsoftToolbarButton( 'InsertUnorderedList'	, JsoftLang.BulletedListLbl, JsoftLang.BulletedList, null, false, true, 27 ) ; break ;
		case 'Outdent'			: oItem = new JsoftToolbarButton( 'Outdent'	, JsoftLang.DecreaseIndent, null, null, false, true, 28 ) ; break ;
		case 'Indent'			: oItem = new JsoftToolbarButton( 'Indent'	, JsoftLang.IncreaseIndent, null, null, false, true, 29 ) ; break ;
		case 'Blockquote'			: oItem = new JsoftToolbarButton( 'Blockquote'	, JsoftLang.Blockquote, null, null, false, true, 73 ) ; break ;
		case 'CreateDiv'			: oItem = new JsoftToolbarButton( 'CreateDiv'	, JsoftLang.CreateDiv, null, null, false, true, 74 ) ; break ;

		case 'Link'				: oItem = new JsoftToolbarButton( 'Link'		, JsoftLang.InsertLinkLbl, JsoftLang.InsertLink, null, false, true, 34 ) ; break ;
		case 'Unlink'			: oItem = new JsoftToolbarButton( 'Unlink'	, JsoftLang.RemoveLink, null, null, false, true, 35 ) ; break ;
		case 'Anchor'			: oItem = new JsoftToolbarButton( 'Anchor'	, JsoftLang.Anchor, null, null, null, null, 36 ) ; break ;

		case 'Image'			: oItem = new JsoftToolbarButton( 'Image'			, JsoftLang.InsertImageLbl, JsoftLang.InsertImage, null, false, true, 37 ) ; break ;
		case 'Flash'			: oItem = new JsoftToolbarButton( 'Flash'			, JsoftLang.InsertFlashLbl, JsoftLang.InsertFlash, null, false, true, 38 ) ; break ;
		case 'Table'			: oItem = new JsoftToolbarButton( 'Table'			, JsoftLang.InsertTableLbl, JsoftLang.InsertTable, null, false, true, 39 ) ; break ;
		case 'SpecialChar'		: oItem = new JsoftToolbarButton( 'SpecialChar'	, JsoftLang.InsertSpecialCharLbl, JsoftLang.InsertSpecialChar, null, false, true, 42 ) ; break ;
		case 'Smiley'			: oItem = new JsoftToolbarButton( 'Smiley'		, JsoftLang.InsertSmileyLbl, JsoftLang.InsertSmiley, null, false, true, 41 ) ; break ;
		case 'PageBreak'		: oItem = new JsoftToolbarButton( 'PageBreak'		, JsoftLang.PageBreakLbl, JsoftLang.PageBreak, null, false, true, 43 ) ; break ;

		case 'Rule'				: oItem = new JsoftToolbarButton( 'Rule'			, JsoftLang.InsertLineLbl, JsoftLang.InsertLine, null, false, true, 40 ) ; break ;

		case 'JustifyLeft'		: oItem = new JsoftToolbarButton( 'JustifyLeft'	, JsoftLang.LeftJustify, null, null, false, true, 30 ) ; break ;
		case 'JustifyCenter'	: oItem = new JsoftToolbarButton( 'JustifyCenter'	, JsoftLang.CenterJustify, null, null, false, true, 31 ) ; break ;
		case 'JustifyRight'		: oItem = new JsoftToolbarButton( 'JustifyRight'	, JsoftLang.RightJustify, null, null, false, true, 32 ) ; break ;
		case 'JustifyFull'		: oItem = new JsoftToolbarButton( 'JustifyFull'	, JsoftLang.BlockJustify, null, null, false, true, 33 ) ; break ;

		case 'Style'			: oItem = new JsoftToolbarStyleCombo() ; break ;
		case 'FontName'			: oItem = new JsoftToolbarFontsCombo() ; break ;
		case 'FontSize'			: oItem = new JsoftToolbarFontSizeCombo() ; break ;
		case 'FontFormat'		: oItem = new JsoftToolbarFontFormatCombo() ; break ;

		case 'TextColor'		: oItem = new JsoftToolbarPanelButton( 'TextColor', JsoftLang.TextColor, null, null, 45 ) ; break ;
		case 'BGColor'			: oItem = new JsoftToolbarPanelButton( 'BGColor'	, JsoftLang.BGColor, null, null, 46 ) ; break ;

		case 'Find'				: oItem = new JsoftToolbarButton( 'Find'		, JsoftLang.Find, null, null, null, null, 16 ) ; break ;
		case 'Replace'			: oItem = new JsoftToolbarButton( 'Replace'	, JsoftLang.Replace, null, null, null, null, 17 ) ; break ;

		case 'Form'				: oItem = new JsoftToolbarButton( 'Form'			, JsoftLang.Form, null, null, null, null, 48 ) ; break ;
		case 'Checkbox'			: oItem = new JsoftToolbarButton( 'Checkbox'		, JsoftLang.Checkbox, null, null, null, null, 49 ) ; break ;
		case 'Radio'			: oItem = new JsoftToolbarButton( 'Radio'			, JsoftLang.RadioButton, null, null, null, null, 50 ) ; break ;
		case 'TextField'		: oItem = new JsoftToolbarButton( 'TextField'		, JsoftLang.TextField, null, null, null, null, 51 ) ; break ;
		case 'Textarea'			: oItem = new JsoftToolbarButton( 'Textarea'		, JsoftLang.Textarea, null, null, null, null, 52 ) ; break ;
		case 'HiddenField'		: oItem = new JsoftToolbarButton( 'HiddenField'	, JsoftLang.HiddenField, null, null, null, null, 56 ) ; break ;
		case 'Button'			: oItem = new JsoftToolbarButton( 'Button'		, JsoftLang.Button, null, null, null, null, 54 ) ; break ;
		case 'Select'			: oItem = new JsoftToolbarButton( 'Select'		, JsoftLang.SelectionField, null, null, null, null, 53 ) ; break ;
		case 'ImageButton'		: oItem = new JsoftToolbarButton( 'ImageButton'	, JsoftLang.ImageButton, null, null, null, null, 55 ) ; break ;
		case 'ShowBlocks'		: oItem = new JsoftToolbarButton( 'ShowBlocks'	, JsoftLang.ShowBlocks, null, null, null, true, 72 ) ; break ;

		default:
			alert( JsoftLang.UnknownToolbarItem.replace( /%1/g, itemName ) ) ;
			return null ;
	}

	JsoftToolbarItems.LoadedItems[ itemName ] = oItem ;

	return oItem ;
}
